package com.mt.repair.service.repairManagement;

import com.mt.common.core.web.base.PageDTO;
import com.mt.common.core.web.base.PageResultDTO;
import com.mt.repair.entity.repairManagement.Device;

import java.io.IOException;
import java.util.List;

public interface DeviceService {
    /**
     * 根据分页参数查询设备集合
     *
     * @param pageDTO 分页条件
     */
    public PageResultDTO findDevices(PageDTO pageDTO);

    /**
     * 查询全部设备集合
     *
     */
    public List<Device> findAllDevices();

    /**
     * 根据名称查询设备集合(只提取ID 和 Name)
     *
     * @param deviceName 名称
     */
    public List<Device> findDevicesWithIdNameByName(String deviceName);

    /**
     * 查询所有设备集合(只提取ID 和 Name)
     *
     */
    public List<Device> findAllDevicesWithIdName();

    /**
     * 根据ID查询指定的设备(只提取ID 和 Name)
     *
     * @param deviceId Id
     */
    public Device findDevicesWithIdNameById(Long deviceId);

    /**
     * 根据ID查询指定的设备
     *
     * @param deviceId Id
     */
    public Device findDevice(Long deviceId);

    /**
     * 根据ID查询指定的设备(包含外键)
     *
     * @param deviceId Id
     */
    public Device findDeviceWithForeignName(Long deviceId);

    /**
     * 新增设备
     *
     * @param device 实体对象
     */
    public Device saveDevice(Device device) throws IOException;

    /**
     * 更新设备
     *
     * @param device 实体对象
     */
    public Device updateDevice(Device device);

    /**
     * 根据ID删除设备
     *
     * @param deviceId ID
     */
    public void deleteDevice(Long deviceId);

    List<Device> findDevicesByUser(Long userId);

    Device findDeviceByCode(String deviceCode);
}
